﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CSharp.Libs.Koc.ItemClasses;
using CSharp.Libs.WPF;

namespace CSharp.Libs.Koc.ItemClasses
{
    /// <summary>KnightViewItem </summary>
    public class KnightViewItem : ViewModelBase
    {
        #region declarations
        private KnightItem _kiKnight = null;

        private KnightRoles _knightRole = KnightRoles.Unassigned;

        private bool _fSkillupMaxValue = true;
        private bool _fSkillupPolitics = false;
        private bool _fSkillupCombat = false;
        private bool _fSkillupIntelligence = false;
        private bool _fSkillupResourcefulness = false;
        private Int64 _intLevel = 0;
        private Int64 _intUnassignedSkillPoints = 0;
        private string _strCityName = "";

        #endregion
        


        #region constructor / finalizer
        public KnightViewItem(
            KnightItem kiKnight)
        {
            Knight = kiKnight;
        }
        #endregion
        
        
        
        #region event handling
        #endregion
        
        
        
        #region private functions
        #endregion
        
        
        
        #region interface
        #region properties
        /// <summary>Knight</summary>
        /// <history>created  16.02.2012</history>
        public KnightItem Knight
        {
            get { return _kiKnight; }
            set
            {
                _kiKnight = value;
                OnPropertyChanged("Knight");
            }
        }

        /// <summary>CityName</summary>
        /// <history>created  17.02.2012</history>
        public string CityName
        {
            get { return _strCityName; }
            set
            {
                _strCityName = value;
                OnPropertyChanged("CityName");
            }
        }

        /// <summary>Level</summary>
        /// <history>created  16.02.2012</history>
        public Int64 Level
        {
            get { return _intLevel; }
            set
            {
                _intLevel = value;
                OnPropertyChanged("Level");
            }
        }

        /// <summary>FreeSkillPoints</summary>
        /// <history>created  16.02.2012</history>
        public Int64 UnassignedSkillPoints
        {
            get { return _intUnassignedSkillPoints; }
            set
            {
                _intUnassignedSkillPoints = value;
                OnPropertyChanged("UnassignedSkillPoints");
            }
        }

        /// <summary>SkillupMaxValue</summary>
        /// <history>created  17.02.2012</history>
        public bool SkillupMaxValue
        {
            get { return _fSkillupMaxValue; }
            set
            {
                _fSkillupMaxValue = value;
                OnPropertyChanged("SkillupMaxValue");
            }
        }

        /// <summary>SkillupPolitics</summary>
        /// <history>created  17.02.2012</history>
        public bool SkillupPolitics
        {
            get { return _fSkillupPolitics; }
            set
            {
                _fSkillupPolitics = value;
                OnPropertyChanged("SkillupPolitics");
            }
        }

        /// <summary>SkillupCombat</summary>
        /// <history>created  17.02.2012</history>
        public bool SkillupCombat
        {
            get { return _fSkillupCombat; }
            set
            {
                _fSkillupCombat = value;
                OnPropertyChanged("SkillupCombat");
            }
        }

        /// <summary>SkillupIntelligence</summary>
        /// <history>created  17.02.2012</history>
        public bool SkillupIntelligence
        {
            get { return _fSkillupIntelligence; }
            set
            {
                _fSkillupIntelligence = value;
                OnPropertyChanged("SkillupIntelligence");
            }
        }

        /// <summary>SkillupResourcefulness</summary>
        /// <history>created  17.02.2012</history>
        public bool SkillupResourcefulness
        {
            get { return _fSkillupResourcefulness; }
            set
            {
                _fSkillupResourcefulness = value;
                OnPropertyChanged("SkillupResourcefulness");
            }
        }

        /// <summary>KnightRole</summary>
        /// <history>created  17.02.2012</history>
        public KnightRoles KnightRole
        {
            get { return _knightRole; }
            set
            {
                _knightRole = value;
                OnPropertyChanged("KnightRole");
                OnPropertyChanged("KnightRoleText");
            }
        }

        public string KnightRoleText
        {
            get { return _knightRole.ToString(); }
        }
        #endregion

        #region methods
        #endregion
        #endregion
    }
}
